/*
考虑一个 16 位整数，由 2 个字节组成。内存中存储这两个字节有两种方法：
 一种是将低序字节存储在起始地址，这称为小端字节序（ little-endian ），
 一种是将高序字节存储在起始地址，这称为大端字节序（ big-endian ）。
操作系统都有使用这种字节序，并没有标准。我们把某给定系统使用的字节序称为主机字节序（ host byte order ）。
**/

#include <stdio.h>


int 
main() {
	union {
		short s;
		char c[2];
	} un;

	un.s = 0x0102;
	if (sizeof(short) == 2) {
		if (un.c[0] == 0x02 && un.c[1] == 0x01)
			printf("little-endian\n");
		else if (un.c[0] == 0x01 && un.c[1] == 0x02)
			printf("big-endian\n");
		else
			printf("unknown byte order\n");
	} else {
		printf("the size of short is %d\n", (int)sizeof(short));
	}
	return 0;
}
